Przykad 2.6. Algorytm MODGCD obliczania GCD
public static void modgcd (int a[], int b[], int gcd[]) {
   if (isZero(a)) { assign (gcd, a); return; }
   if (isZero(b)) { assign (gcd, b); return; }

   // Wyrwnaj liczb cyfr w a i b, po czym pracuj na kopiach
   a = copy (normalize(a, b.length));
   b = copy (normalize(b, a.length));

   // Zadbaj, aby a byo wiksze od b; zwr GCD w banalnym przypadku
   int rc = compareTo(a, b);
   if (rx == 0) { assign (gcd, a); return; }
   if (rc < 0) {
      int [] t = b;
      b = a;
      a = t;
   }

   int [] quot = new int[a.length];
   int [] remainder = new int[a.length];

   while(!isZero(b)) {
      int [] t = copy (b);
      divide (a, b, quot, remainder);
      assign (b, remainder);
      assign (a, t);
   }

   // Warto przechowywana w a jest obliczonym GCD liczb (a, b)
   assign (gcd, a);
}
